package com.candy.control;

import com.candy.bean.UserInfo;
import com.candy.service.UserInfoService;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

@RestController
@RequestMapping("/api/user")
@CrossOrigin
public class UserInfoController {
    @Autowired
    UserInfoService userInfoService;
    @GetMapping
    public PageInfo<UserInfo> getUserInfoes(Integer pageCurrent,Integer pageSize,UserInfo userinfo){
//        在PageHelper.startPage后面跟着的第一个查询操作会被进行分页处理
        PageHelper.startPage(pageCurrent,pageSize);
        List<UserInfo> userinfoes=userInfoService.getUserInfoes(userinfo);
        PageInfo<UserInfo> pageInfo=new PageInfo<>(userinfoes);
        System.out.println(pageInfo);
        return pageInfo;
    }
    @PostMapping
    public void editUserInfo(UserInfo userinfo){
       userInfoService.editUserInfo(userinfo);
    }

    /**
     * 如果前端在传递参数时，没有使用Qs对参数进行序列化处理，则需要在后端使用RequestBody注解来对参数进行处理
     * @RequestBody注解：将HTTP请求的请求体中的JSON数据转换为Java对象
     * @param userInfo
     */
    @PutMapping
    public void updateUserInfo(@RequestBody UserInfo userInfo){
        userInfoService.updateUserInfo(userInfo);
    }

    /**
     *@PathVariable注解的主要作用是将‌URL中的路径变量映射到方法的参数上
     * @param userid
     */
    @DeleteMapping("{userId}")
    public void deleteUserInfo(@PathVariable("userId") String userid){
        Integer id=Integer.parseInt(userid);
        userInfoService.deleteUserInfo(id);
    }
}
